/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mycompany.pagoxusuario.controllers;

import com.mycompany.pagoxusuario.entidades.Pago;
import com.mycompany.pagoxusuario.persistence.JPAUtil;
import com.mycompany.pagoxusuario.persistence.QueryDataModel;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import org.primefaces.model.LazyDataModel;
/**
 
  */

@ManagedBean
@ViewScoped
public class PagoBean {

    
	private Pago pago;
       	private List<Pago> pagos;

	private LazyDataModel<Pago> lazyDataModel;

	@PostConstruct
	public void init(){
		pago = new Pago();
	}
	
	
	public String grabar(Pago pago) {
		EntityManager em = JPAUtil.getEntityManager();
		em.persist(pago);
		
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Pago fue grabado con exito!"));
		
		return "listar";
	}

	public LazyDataModel<Pago> getLazyDataModel() {
		if (lazyDataModel == null) {
			String jpql = "select m from Pago m";
			lazyDataModel = new QueryDataModel<Pago>(jpql);
		}

		return lazyDataModel;
	}
	
	public List<Pago> getPagos() {
		if (pagos == null) {
			pagos = JPAUtil.getEntityManager().createQuery("select m from Pago m", Pago.class).getResultList();
		}

		return pagos;
	}

	public Pago getPago() {
		return pago;
	}

	public void setPago(Pago pago) {
		this.pago = pago;
	}

	public void setPagos(List<Pago> pagos) {
		this.pagos = pagos;
	}
    
    
}

